Currently, software licenses come in two varieties: license by user and floating license. Under the first variety, licenses are tied to single users. As such, acquiring licenses for all users in an organization can be very costly. Under the alternative variety, floating licenses allow software sharing amongst multiple users, allowing for fewer licenses to be acquired. Floating licenses are useful, such as, for an organization with multiple users when the software is not used by everyone at the same time. A floating license, however, is required for each concurrent user. Cost is thus minimized because the organization need only acquire a sufficient number of licenses for the anticipated number of users who will run the software at the same time. For example, with one floating license, any number of users can access the software, but only one can use it at a time while the others must wait. With n floating licenses, any number of users can access the software but only n can use it at a time while others must wait. Only when a floating license becomes available can another user begin using the software.
All machines that are able to run the software must have network access to a license server. When a user wishes to use or run the software, the user must have a license by requesting one from the license server. Only when there is an available or open license can the user start the software after the license server assigns the user a license. However, once the user disconnects from the license server or exits the software, the license is released automatically to be reclaimed by the license server, allowing another user to start using the software with that license.
Although floating licenses allow the entire organization to use the software, albeit not all at the same time, those that use the software must be connected to the license server during the entire duration of software execution and must make sure that the software is not closed either accidentally (e.g., due to power failure) or intentionally. However, there are times when a user must use the software over a period of time when keeping the software running for that period of time is impractical or inconvenient, or when the user machine is not in a networked environment and/or has lost network connectivity.